package co.jp.roomy;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import co.jp.roomy.vo.Heya;
import co.jp.roomy.vo.MyKagu;



/**
 * 家具一覧表示アクティビティ
 */
public class SelectKaguTypeActivity extends Activity {

	// データベースヘルパーの作成
	private DatabaseHelper helper = new DatabaseHelper(this);
	
	// データベースの宣言
	public static SQLiteDatabase db;
	
	private Heya heya;
	
	// カテゴリマスタ情報
	private String mCategoryTable = "M_CATEGORY";
	private String[] mCategoryTableColumns = {"categoryId", "cateogryName"};
	
	// 家具マスタ情報
	private String mKaguTable = "M_KAGU";
	private String[] mKaguTableColumns = {"kaguId", "categoryId", "kaguName"};
	private String mKaguTableWhere = "categoryId = ?";
	private String orderBy = "kaguId ASC";
	private String[] dbKaguType;
	
	@Override
	public void onCreate(Bundle bundle) {
		super.onCreate(bundle);
		// 自動生成されたR.javaの定数を指定してXMLからレイアウトを生成
		setContentView(R.layout.select_kagu_type);

		Intent intent = getIntent();
		String categoryName = (String)intent.getSerializableExtra(SelectKaguTypeActivity.this.getString(R.string.categoryNameKey));
		heya = (Heya)intent.getSerializableExtra(SelectKaguTypeActivity.this.getString(R.string.heyaKey));
		String[] where_args = new String[1];
		if (categoryName.equals("机")) {
			where_args[0] = new String("1");
		} else if (categoryName.equals("椅子")) {
			where_args[0] = new String("2");
		} else if (categoryName.equals("箪笥")) {
			where_args[0] = new String("3");
		} else {
			where_args[0] = new String("4");
		}
		
		db = helper.getReadableDatabase();
		//Cursor cursor = db.query("M_CATEGORY", mCategoryTableColumns, mKaguTableWhere, where_args, null, null, orderBy);
		Cursor cursor = db.query("M_CATEGORY", mCategoryTableColumns, null, null, null, null, categoryName);
			
		startManagingCursor(cursor);
		
		// XMLで定義したListViewのIDを読み込みListViewを生成します。
		final ListView kaguListView = (ListView) findViewById(R.id.categoryListView);
		
		// intentからキー値を読み取り、変数に格納しローカライズする。
		List<String> list = new ArrayList<String>();
		
		// 配列をListに詰め替える（配列のままAdapterに渡しても表示は可能）
//		for (int i=0; i<10; i++) {
//			list.add(categoryName + i);
//		}
		
		while (cursor.moveToNext()) {
			list.add(cursor.getString(cursor.getColumnIndex(mCategoryTableColumns[1])));
		}
		
		// このコンテキストに、家具カテゴリリストを順番に設定する。
		final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, list);
		// 生成したListViewに表示用アダプタを設定する
		kaguListView.setAdapter(arrayAdapter);
		
		// リストビューのアイテムがクリックされた時に呼び出されるコールバックリスナーを登録します
		kaguListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
			@Override
			public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
				Intent intent = new Intent(SelectKaguTypeActivity.this, MadoriActivity.class);
				
				//クリックされたアイテムを取得します。
				ListView listView = (ListView) parent;
				// TODO 家具の名前を元に家具情報を取得する
				final String item = (String) listView.getItemAtPosition(position);
				String[] mKaguTableWhereArgs = {item};
				
				Cursor cursor = db.query(mCategoryTable, 
										 mCategoryTableColumns, 
										 mKaguTableWhere, 
										 mKaguTableWhereArgs, 
										 null, 
										 null, 
										 null);
				
				startManagingCursor(cursor);
				MyKagu myKagu = new MyKagu();
				while(cursor.moveToNext()) {
					myKagu.setKaguId(cursor.getInt(cursor.getColumnIndex(mCategoryTableColumns[0])));
					myKagu.setCatgeoryId(cursor.getInt(cursor.getColumnIndex(mCategoryTableColumns[1])));
					myKagu.setMyKaguName(cursor.getString(cursor.getColumnIndex(mCategoryTableColumns[2])));
				}
				
				intent.putExtra(SelectKaguTypeActivity.this.getString(R.string.categoryNameKey), myKagu);
				intent.putExtra(SelectKaguTypeActivity.this.getString(R.string.heyaKey), heya);
				
				startActivity(intent);
			}
		});
	}
	public void onDestroy() {
		super.onDestroy();
		helper.close();
	}
}